#include "HGEWindow.h"
#include "hgeSprite.h"
#include "common.h"
#include "HGEHandle.h"
#include <QTimer>
#include <iostream>
using namespace std;

HGEWindow::HGEWindow(QWidget* parent)
{
    this->setParent(parent);
}

void HGEWindow::init()
{
	resize(QSize(300,300));
	setAttribute(Qt::WA_PaintOnScreen, true);

	HGEHandle::get_instance()->setWidget(this);

	hge->System_SetState(HGE_FRAMEFUNC, HGEHandle::get_instance()->tick);
	hge->System_SetState(HGE_RENDERFUNC, HGEHandle::get_instance()->render);
	hge->System_SetState(HGE_TITLE, "hge qt test");
	hge->System_SetState(HGE_WINDOWED, true);
	hge->System_SetState(HGE_SCREENBPP, 32);
	hge->System_SetState(HGE_FPS, 100);
	hge->System_SetState(HGE_HIDEMOUSE, false);
	hge->System_SetState(HGE_USESOUND, false);
	hge->System_SetState(HGE_SHOWSPLASH, false);
	hge->System_SetState(HGE_HWNDPARENT, winId());
	hge->System_Initiate();

	HGEHandle::get_instance()->init();
}

HGEWindow::~HGEWindow()
{

}

QPaintEngine* HGEWindow::paintEngine() const
{
	return NULL;
}

void HGEWindow::paintEvent(QPaintEvent*)
{
	hge->System_Start();
}

void HGEWindow::move_up()
{
    HGEHandle::get_instance()->move_up();
}

void HGEWindow::move_down()
{
   HGEHandle::get_instance()->move_down(); 
}